
package com.mephi.interfaces;


import java.io.File;
import org.w3c.dom.Document;
import com.mephi.model.Move;


/**
 * Interface which describes operations on game, saving and loading
 * @author mephisto
 * @since 2011-04-22
 * @param <E>
 */
public interface LoadSaveGame<E extends Move>
{
	/**
	 * 
	 * @param path the path to a file to set
	 * @return the loaded game
	 * 
	 * @throws IllegalArgumentException if path is null
	 */
	Game<E> loadGame(String path);
	
	/**
	 * 
	 * @param path the path to a file to set
	 * 
	 * @throws IllegalArgumentException if doc or path is/are null
	 */
	void saveGame(Document doc, String path);
}
